맨위로가기 타임라인 바로가기

관계형 데이터베이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
타임라인 바로가기

1. 개요

관계형 데이터베이스는 데이터를 테이블 형태로 구성하여 관리하는 데이터베이스 모델이다. 1970년 IBM의 E.F. 코드에 의해 처음 정의되었으며, 데이터베이스의 핵심 개념인 테이블, 열, 행, 키, 관계 등을 포함한다. 관계형 데이터베이스 관리 시스템(RDBMS)은 이러한 관계형 데이터베이스를 관리하기 위한 소프트웨어로, ACID 트랜잭션, 저장 프로시저, 정규화, 인덱스 등의 기술을 활용한다. 오라클, MySQL, Microsoft SQL Server 등이 주요 RDBMS 제품이며, 고객 관리, 판매 관리 등 다양한 분야에서 활용된다.

더 읽어볼만한 페이지

  • 관계형 모델 - 관계 논리
    관계 논리는 관계 모델 기반 데이터베이스 언어로서 관계 대수와 논리적으로 동일하며, 튜플 관계 논리와 도메인 관계 논리로 나뉘어 쿼리 최적화에 사용된다.
  • 관계형 모델 - 관계형 데이터베이스 관리 시스템
    관계형 데이터베이스 관리 시스템(RDBMS)은 에드가 F. 코드의 관계형 모델에 기반하여 테이블 형태로 데이터를 구성하고 관계 연산을 통해 데이터를 조작하는 시스템으로, 오라클, MySQL, PostgreSQL 등 다양한 종류가 존재한다.
  • 데이터베이스 이론 - 데이터베이스 설계
    데이터베이스 설계는 데이터를 효율적으로 관리하기 위해 데이터 분류, 관계 식별, 논리 구조화 등을 포함하며, 개념적, 논리적, 물리적 설계를 거쳐 데이터 중복을 줄이고 데이터 무결성을 확보하는 과정이다.
  • 데이터베이스 이론 - 키-값 데이터베이스
    키-값 데이터베이스는 키를 사용하여 데이터를 저장하고 검색하는 데이터베이스 유형이며, 관계형 데이터베이스와 달리 유연성이 높고, NoSQL의 한 유형으로 널리 사용되며, 빅데이터 등 다양한 분야에서 활용된다.
  • 관계형 데이터베이스 관리 시스템 - IBM 시스템 R
  • 관계형 데이터베이스 관리 시스템 - 마이크로소프트 액세스
    마이크로소프트 액세스는 1992년 출시된 데이터베이스 관리 시스템으로, 테이블, 쿼리, 폼 등을 생성하고 VBA를 통해 솔루션을 개발하며, 윈도우에서 사용 가능하고 다양한 데이터 형식과 통합된다.
관계형 데이터베이스
지도
일반 정보
유형데이터베이스
개발자에드가 F. 코드
최초 구현1970년
다른 이름관계형 DBMS, RDBMS
특징
데이터 모델관계형 모델
스키마고정 스키마
질의 언어SQL
데이터 무결성ACID 속성
주요 기능데이터 저장, 검색, 업데이트, 삭제, 관리
기술적 측면
데이터 구조테이블, 관계
인덱싱B-트리, 해시 테이블
저장 방식디스크, SSD
접근 방식클라이언트-서버 모델
표준 및 규격
SQL 표준SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016
ACID 준수부분적으로 또는 전체적으로 준수
구현
주요 제품오라클 데이터베이스
MySQL
PostgreSQL
Microsoft SQL Server
IBM Db2
SQLite
관련 기술
데이터베이스 설계데이터 모델링, 정규화
질의 최적화질의 계획, 인덱스
트랜잭션 관리잠금, 병행 제어
장점
데이터 일관성ACID 속성을 통한 데이터 무결성 유지
쉬운 접근성SQL을 통한 간편한 데이터 접근 및 관리
유연성다양한 데이터 모델링 및 질의 방법 지원
단점
성능 문제대용량 데이터 처리 시 성능 저하 가능성
복잡성복잡한 관계 모델링 및 질의 필요
확장성수직적 확장에 한계 존재

2. 역사

관계형 데이터베이스는 1970년 IBM의 에드거 커드가 처음 정의했다.[18] 그는 커드의 12 규칙을 통해 관계형 데이터베이스 시스템이 갖춰야 할 요건을 제시했다.

초기에는 계층형 데이터베이스와 네트워크 모형 등도 있었지만, 관계형 데이터베이스가 점차 주류로 자리 잡았다.

관계형 데이터베이스와 SQL의 주요 용어는 아래 표와 같다.

SQL 용어관계형 데이터베이스 용어설명
로우튜플 또는 레코드하나의 항목을 대표하는 데이터
컬럼속성(어트리뷰트) 또는 필드튜플의 이름 요소 (예: "주소", "생년월일")
테이블관계 또는 기초 관계변수같은 속성을 공유하는 튜플의 모임 (컬럼이나 로우의 모임)
또는 결과 집합파생 관계변수튜플들의 모임 (질의어에 응답하는 RDBMS의 데이터 보고서)



코드의 규칙을 모두 만족하는 상업적 구현은 없었지만, 점차 다음 조건을 만족하는 시스템을 RDBMS라고 부르게 되었다.

# 데이터를 관계(테이블의 모음)로 표현

# 관계 연산자 제공

2009년 기준으로 대부분의 상업용 RDBMS는 SQL을 쿼리 언어로 사용한다.[12]

2. 1. 관계형 모델의 탄생

관계형 데이터베이스는 1970년 6월 IBM 산호세 연구소의 에드거 커드가 처음 정의하였다.[30] 커드는 "대규모 공유 데이터 뱅크를 위한 데이터의 관계형 모델"이라는 연구 논문에서 "관계형"이라는 용어를 처음 사용했다.[18] 이 논문과 이후의 논문에서 그는 "관계"의 의미를 정의했으며, 관계형 데이터베이스 시스템을 구성하는 가장 잘 알려진 정의 중 하나는 커드의 12 규칙이다.

그러나 코드의 모든 규칙을 준수하는 관계형 모델의 상업적 구현은 없었으므로,[3] 해당 용어는 점차 다음을 최소한으로 충족하는 더 광범위한 데이터베이스 시스템 클래스를 설명하는 데 사용되었다.

# 사용자에게 데이터를 관계(표 형식, 즉 테이블의 "모음"으로, 각 테이블은 행과 열의 집합으로 구성됨)로 표시한다.

# 표 형식으로 데이터를 조작하는 관계 연산자를 제공한다.

1974년, IBM은 RDBMS의 프로토타입을 개발하기 위한 연구 프로젝트인 System R의 개발을 시작했다.[4][5] RDBMS로 판매된 첫 번째 시스템은 Multics Relational Data Store(1976년 6월)였다. Oracle은 1979년 Relational Software에서 출시되었으며, 현재는 오라클이다.[6]

관계형 모델을 비교적 충실하게 구현한 첫 번째 시스템은 다음과 같다.

  • 미시간 대학교 – Micro DBMS(1969)[8]
  • 매사추세츠 공과대학교 (1971)[9]
  • IBM UK 과학 센터(피터리) – IS1(1970–72),[10] 및 후속 제품인 PRTV(1973–79).[11]


2009년 기준으로, 대부분의 상업용 관계형 DBMS는 SQL을 쿼리 언어로 사용한다.[12]

2. 2. 초기 RDBMS 개발

에드거 커드는 1970년 6월 IBM 산호세 연구소에서 관계형 데이터베이스를 처음 정의하였다.[30] 커드의 12 규칙에는 RDBMS의 자격 요건에 대한 커드의 관점이 요약되어 있다.

1974년, IBM은 RDBMS 프로토타입 개발을 위한 연구 프로젝트인 System R을 시작했다.[4][5] 최초로 판매된 RDBMS 시스템은 Multics Relational Data Store (1976년 6월)였다. 1979년에는 Relational Software(현 오라클)에서 Oracle을 출시했다.[6] Ingres와 IBM BS12가 그 뒤를 이었다. IBM Db2, SAP Sybase ASE, Informix 등도 RDBMS의 예시이다. 1984년에는 Macintosh용 최초의 RDBMS가 개발되기 시작하여 1987년 4th Dimension(현재 4D)으로 출시되었다.[7]

관계형 모델을 비교적 충실하게 구현한 초기 시스템은 다음과 같다.

  • 미시간 대학교 – Micro DBMS (1969)[8]
  • 매사추세츠 공과대학교 (1971)[9]
  • IBM UK 과학 센터(피터리) – IS1 (1970–72),[10] 및 후속 제품인 PRTV (1973–79).[11]

2. 3. RDBMS의 발전과 대중화

관계형 데이터베이스는 1970년 6월 IBM 산호세 연구소의 에드거 커드가 처음 정의하였다.[30] 커드는 "대규모 공유 데이터 뱅크를 위한 데이터의 관계형 모델"이라는 연구 논문에서 "관계형"이라는 용어를 처음 사용했다.[18] 이 논문과 이후의 논문에서 그는 "관계"의 의미를 정의했다. 커드의 12 규칙은 관계형 데이터베이스 시스템을 구성하는 가장 잘 알려진 정의 중 하나이다.

1974년, IBM은 RDBMS의 프로토타입 개발을 위한 연구 프로젝트인 System R을 시작했다.[4][5] 최초로 RDBMS로 판매된 시스템은 1976년 6월의 Multics Relational Data Store였다. 1979년에는 Relational Software에서 Oracle을 출시했으며, 현재는 오라클이다.[6] Ingres와 IBM BS12가 그 뒤를 이었다. IBM Db2, SAP Sybase ASE, Informix 등도 RDBMS의 예시이다. 1984년에는 Macintosh용 최초의 RDBMS가 개발되기 시작했으며, 코드명은 Silver Surfer였다. 이 RDBMS는 1987년 4th Dimension으로 출시되어 현재는 4D로 알려져 있다.[7]

관계형 모델을 비교적 충실하게 구현한 첫 번째 시스템은 다음과 같다.

  • 미시간 대학교 – Micro DBMS (1969)[8]
  • 매사추세츠 공과대학교 (1971)[9]
  • IBM UK 과학 센터(피터리) – IS1 (1970–1972),[10] 및 후속 제품인 PRTV (1973–1979).[11]


2009년 기준으로, 대부분의 상업용 관계형 DBMS는 SQL을 쿼리 언어로 사용한다.[12]

2. 4. 한국 관계형 데이터베이스의 역사

3. 관계형 모델

에드거 커드는 1970년 6월 IBM 산호세 연구소에서 관계형 모델을 처음 정의하였다.[30] 이 모델은 데이터를 테이블(또는 관계) 형태로 구성하며, 각 레코드 (또는 튜플)는 고유 키로 식별된다.[31] 테이블은 일반적으로 고객이나 제품 같은 엔티티 타입을 나타내며, 레코드는 "Lee"와 같은 엔티티 인스턴스, 컬럼은 주소나 가격 같은 속성 값을 나타낸다.

각 레코드는 고유 키를 가지며, 외래 키를 사용하여 다른 테이블의 레코드와 연결할 수 있다. 관계는 테이블 간에 존재하며 일대일, 일대다, 다대다 형태가 있다. 대부분의 관계형 데이터베이스는 각 레코드의 각 컬럼이 하나의 값만 가지도록 설계한다.

관계형 데이터베이스 용어


커드의 12 규칙은 커드의 관계형 모델 관점을 요약하며, 계층적 데이터베이스 모형, 네트워크 모형 등 다른 모델도 존재한다.

관계는 같은 속성을 가진 튜플의 모임이며, 일반적으로 물리적 객체나 개념을 나타내는 오브젝트와 그 정보를 표현한다. 관계는 컬럼으로 구성된 테이블로 기술되며, 속성이 참조하는 데이터는 동일한 도메인에 속하고 동일한 제약을 따른다.

제약(constraint)은 속성 범위를 제한하며, 예를 들어 1부터 10 사이의 정수로 제한할 수 있다. 각 속성은 관련 도메인을 가지며, '''도메인 제약'''이 존재한다. 관계형 모델의 주요 원칙은 '''개체 무결성'''과 '''참조 무결성'''이다.

관계 모델은 IBM의 에드거 F. 코드가 고안했으며,[29] 현재 가장 널리 사용되는 데이터 모델이다. 사용자는 쿼리를 통해 데이터를 검색하거나 변경할 수 있다.

데이터는 표와 유사한 관계(릴레이션)로 관리되며, 튜플(행), 속성(열), 도메인, 후보키, 외래키 등으로 구성된다. SQL데이터베이스 언어(질의어)를 사용하여 관계 대수 연산 또는 관계 논리 연산을 수행하여 결과를 얻는다.

관계는 여러 개일 수 있으며 서로 연관될 수 있다. 예를 들어, 식품 통신 판매 회사의 고객 관리 데이터베이스에서 고객 목록과 물품 판매 목록은 별개지만 고객 번호 등으로 연결하여 정보를 추출할 수 있다.

: 식품 통신 판매 회사의 데이터베이스 예 (※ 데이터는 가상)

고객
고객 번호고객 이름주소1주소2전화 번호
00001아이다 타카유키도쿄도 신주쿠구가부키초 x-x-x03-xxxx-xxxx
00002이토 미카가나가와현 요코하마시나카구 야마시타초 xx045-xxx-xxxx
00003우치다 코지사이타마현 사이타마시타카사고 xx-xx048-xxx-xxxx



판매
판매일고객 번호상품1상품2상품3……
05011500002긴죠 灘 1병특선 안주
05011600001고베 와규 세트
05011600003특가 생햄홀 머스타드마리 로랑생
05011700001사츠마 흑돼지 햄



데이터 연결 기준인 키는 모든 데이터에 고유해야 한다. 잘 설계된 데이터베이스에서는 정형문(정형 쿼리)을 통해 최신 데이터를 기반으로 한 표를 볼 수 있다.

3. 1. 주요 개념

관계형 데이터베이스 모델은 데이터를 하나 이상의 테이블(또는 "관계")로 구성하며, 각 테이블은 열과 행으로 이루어져 있다. 각 행은 고유 키로 식별되며, 레코드 또는 튜플이라고도 불린다.[13] 열은 속성이라고도 불린다.

일반적으로 각 테이블은 하나의 "개체 유형"(예: 고객, 상품)을 나타낸다. 행은 해당 유형의 개체 인스턴스(예: "이", "의자")를, 열은 해당 인스턴스의 속성 값(예: 주소, 가격)을 나타낸다.

테이블의 각 행은 고유한 키를 가지며, 다른 테이블의 행과 연결될 수 있다. 이때 외래 키가 사용된다. 에드거 코드는 임의의 복잡성을 가진 데이터 관계가 간단한 일련의 개념으로 표현될 수 있음을 보여주었다.[18]

대부분의 물리적 구현에서는 각 행에 기본 키(PK)가 부여된다. 시스템 성능은 PK에 최적화되어 있다. 자연 키는 대체 키(AK)로 식별 및 정의될 수 있다. PK와 AK는 모두 테이블 내에서 행을 고유하게 식별한다. 전역 고유 식별자를 통해 전 세계적으로 고유한 ID를 보장할 수도 있다.

데이터베이스 내의 기본 키는 테이블 간의 관계를 정의하는 데 사용된다. PK가 다른 테이블로 넘어가면 외래 키(FK)가 된다. 대부분의 관계형 데이터베이스 설계는 다대다 관계(Many-to-many (data model))를 해결하기 위해 추가 테이블을 생성한다.

관계는 테이블(개체) 간의 상호 작용을 기반으로 설정된 논리적 연결이다. 이러한 관계는 개체-관계 모델로 모델링할 수 있다.

관계형 데이터베이스는 1970년 6월 에드거 코드에 의해 처음 정의되었다.[18] 관계형 데이터베이스는 지배적인 데이터베이스 유형이 되었으며, 계층적 데이터베이스 모델, 네트워크 모델 등 다른 모델도 존재한다.

다음 표는 관계형 데이터베이스 용어와 해당 SQL 용어를 요약한 것이다.

SQL 용어관계형 데이터베이스 용어설명
튜플 또는 레코드단일 항목을 나타내는 데이터 집합
속성 또는 필드튜플의 레이블이 지정된 요소 (예: "주소", "생년월일")
테이블관계 또는 기본 relvar동일한 속성을 공유하는 튜플 집합
뷰 또는 결과 집합파생 relvar쿼리에 대한 응답으로 RDBMS에서 제공하는 데이터 보고서



관계는 동일한 속성을 가진 튜플의 집합이다. 튜플은 일반적으로 객체와 해당 객체에 대한 정보를 나타낸다. 관계는 테이블로 표현되며, 행과 열로 구성된다. 속성이 참조하는 모든 데이터는 동일한 도메인에 있으며 동일한 제약 조건을 따른다.

관계형 모델은 관계의 튜플과 속성에 특정 순서가 없다고 명시한다. 애플리케이션은 ''select''(선택), ''project''(투영), ''join''(결합) 등의 연산을 사용하여 데이터에 접근한다. 관계는 ''insert''(삽입), ''delete''(삭제), ''update''(갱신) 연산자를 사용하여 수정할 수 있다.

튜플은 정의상 고유하며, 후보 또는 기본 키를 포함할 수 있다. 튜플의 속성은 정의상 슈퍼키를 구성한다.

모든 데이터는 릴레이션을 통해 저장되고 접근된다. 데이터를 저장하는 릴레이션을 "기본 릴레이션"(구현 시 "테이블")이라고 한다. 다른 릴레이션은 데이터를 저장하지 않고, 관계 연산을 통해 계산된다. 이러한 릴레이션을 "파생 릴레이션"(구현 시 "뷰" 또는 "쿼리")이라고 한다. 파생 릴레이션은 여러 릴레이션에서 정보를 가져오더라도 단일 릴레이션처럼 작동하며, 추상화 계층으로 사용될 수 있다.

도메인은 주어진 속성에 대한 가능한 값의 집합을 설명하며, 속성 값에 대한 제약 조건으로 간주될 수 있다. 제약 조건은 데이터베이스에서 비즈니스 규칙을 구현하는 한 가지 방법을 제공한다. SQL은 검사 제약 조건 형태로 제약 조건 기능을 구현한다.

제약 조건은 관계에 저장될 수 있는 데이터를 제한하며, 부울 값으로 생성되는 표현식을 사용하여 정의된다. 제약 조건은 단일 속성, 튜플 또는 전체 관계에 적용될 수 있다.

모든 속성에는 관련된 도메인이 있으므로 도메인 제약 조건이 있다. 관계형 모델의 두 가지 주요 규칙은 개체 무결성과 참조 무결성이다.

모든 관계/테이블은 기본 키를 가지며, 이는 관계가 집합이기 때문이다. 기본 키는 테이블 내에서 튜플을 고유하게 지정한다. 대리 키가 자주 사용되기도 한다.

복합 키는 레코드를 고유하게 식별하는 테이블 내의 두 개 이상의 속성으로 구성된 키이다.[19]

관계 모델에서 데이터는 표와 유사한 구조인 관계(릴레이션)로 관리된다. 관계는 튜플, 속성, 도메인, 후보키, 외래키 등으로 구성된다. SQL데이터베이스 언어(질의어)를 사용하여 관계에 대해 관계 대수 연산 또는 관계 논리 연산을 수행하여 결과를 얻는다.

관계는 여러 개 존재할 수 있으며, 서로 연관될 수 있다. 예를 들어, 식품 통신 판매 회사의 고객 관리 데이터베이스에서 고객 목록과 물품 판매 목록은 별개의 데이터 집합이지만, 고객 번호 등으로 연결하여 정보를 추출할 수 있다.

: 식품 통신 판매 회사에서의 데이터베이스 예 (※ 데이터는 가상의 것)

고객
고객 번호고객 이름주소1주소2전화 번호
00001아이다 타카유키도쿄도 신주쿠구가부키초 x-x-x03-xxxx-xxxx
00002이토 미카가나가와현 요코하마시나카구 야마시타초 xx045-xxx-xxxx
00003우치다 코지사이타마현 사이타마시타카사고 xx-xx048-xxx-xxxx



판매
판매일고객 번호상품1상품2상품3……
05011500002긴죠 灘 1병특선 안주
05011600001고베 와규 세트
05011600003특가 생햄홀 머스타드마리 로랑생
05011700001사츠마 흑돼지 햄



데이터를 연결할 때 기준이 되는 항목을 키라고 부르며, 이 키는 모든 데이터에 고유해야 한다.

이러한 데이터베이스는 각 데이터베이스 내용 변경에 쉽게 대응할 수 있으며, 부분적인 등록 내용 변경이 이루어져도 최신 정보를 이용할 수 있다는 장점이 있다.

실제 업무에 사용되는 데이터베이스는 상품 목록 테이블 등이 별도로 설치되어 여러 개의 테이블이 연계되어 사용자에게 데이터를 제공하도록 설계된다. 이는 데이터 중복을 피하고 관리를 용이하게 하기 위함이다.

잘 설계된 데이터베이스에서는 정형문(정형 쿼리) 형태로 쿼리가 준비되어 사용자는 최신 데이터를 기반으로 한 표를 볼 수 있다.

응용 소프트웨어 형태로 사용될 경우, 그래픽 사용자 인터페이스(GUI)를 통해 사용자는 쿼리나 관계(릴레이션) 등을 거의 의식하지 않고 데이터를 활용할 수 있다.

4. 관계형 데이터베이스 관리 시스템 (RDBMS)

'''관계형 데이터베이스 관리 시스템'''(關係形 Database 關理 System, Relational Database Management System영어, '''RDBMS''')은 RDB를 관리하는 소프트웨어 또는 시스템이다.

E. F. 코드는 1970년 IBM에서 발표한 논문 "대규모 공유 데이터 뱅크를 위한 데이터의 관계형 모델"에서 "관계형" 용어를 처음 사용하고,[1] 이후 논문에서 "관계"의 의미를 정의했다. 관계형 데이터베이스 시스템 구성의 가장 잘 알려진 정의 중 하나는 코드의 12가지 규칙이다. 그러나 코드의 모든 규칙을 준수한 관계형 모델의 상업적 구현은 없었으며,[3] 해당 용어는 다음을 충족하는 더 광범위한 데이터베이스 시스템을 설명하는 데 사용되었다.

# 사용자에게 데이터를 관계(테이블의 모음, 각 테이블은 행과 열의 집합)로 표시.

# 표 형식 데이터를 조작하는 관계 연산자 제공.

1974년, IBM은 RDBMS 프로토타입 개발 연구 프로젝트인 System R 개발을 시작했다.[4][5] 최초의 RDBMS는 Multics Relational Data Store (1976년 6월)였다. Oracle는 1979년 Relational Software에서 출시되었으며, 현재는 오라클이다.[6] Ingres와 IBM BS12가 뒤따랐다. IBM Db2, SAP Sybase ASE, Informix도 RDBMS의 예시이다. 1984년에는 Macintosh용 최초의 RDBMS가 개발, 1987년 4th Dimension으로 출시되어 현재는 4D로 알려져 있다.[7]

관계형 모델을 비교적 충실하게 구현한 첫 번째 시스템은 다음과 같다.


  • 미시간 대학교 – Micro DBMS (1969)[8]
  • 매사추세츠 공과대학교 (1971)[9]
  • IBM UK 과학 센터(피터리) – IS1 (1970–72),[10] 및 후속 제품인 PRTV (1973–79).[11]


RDBMS의 가장 일반적인 정의는 데이터의 보기를 행과 열의 모음으로 나타내는 제품이며, 관계형 모델을 엄격하게 기반으로 하지 않더라도 그러하다. 이 정의에 따르면 RDBMS 제품은 일반적으로 코드의 12가지 규칙 중 일부만 구현한다.

코드의 모든 규칙을 구현해야 관계형이라고 주장하는 학파도 있다. 이들은 대부분의 DBMS를 관계형이 아닌 것으로 간주하며, 일부 RDBMS를 ''진정한 관계형 데이터베이스 관리 시스템''(TRDBMS), 다른 RDBMS를 ''유사 관계형 데이터베이스 관리 시스템''(PRDBMS)이라고 부른다.

2009년 기준, 대부분의 상업용 관계형 DBMS는 SQL을 쿼리 언어로 사용한다.[12] Ingres QUEL 등 대안적인 쿼리 언어가 제안, 구현되기도 했다.

관계형 데이터베이스의 일반적인 구조


코놀리와 베그는 데이터베이스 관리 시스템(DBMS)을 "사용자가 데이터베이스를 정의, 생성, 유지 관리하고 데이터베이스에 대한 접근을 제어할 수 있게 해주는 소프트웨어 시스템"으로 정의한다.[20] RDBMS는 기본 데이터베이스가 관계형일 때 사용되는 약어이다.

''관계형 데이터베이스 관리 시스템''은 관계형 모델 기반의 데이터베이스 관리 시스템(DBMS)이다. 오늘날 널리 사용되는 대부분의 데이터베이스는 이 모델을 기반으로 한다.[21]

RDBMS는 1980년대부터 재무 기록, 제조 및 물류 정보, 인사 데이터 등에 정보를 저장하는 일반적인 옵션이었다. RDBMS는 구현 및 관리가 쉬워 기존의 계층형 데이터베이스 및 네트워크 데이터베이스를 대체하는 경우가 많았다. 그러나, 1980년대와 1990년대에 객체 데이터베이스 ( 객체-관계 임피던스 불일치를 해결하기 위해 도입됨) 및 1990년대의 XML 데이터베이스에 의한 도전이 있었다.[22] 컴퓨터 클러스터의 수평 확장 기술 확산으로, 최근에는 NoSQL 데이터베이스가 RDBMS의 대안으로 인기를 얻고 있다.[23]

4. 1. RDBMS의 기능

저장 프로시저를 사용하여 관계형 데이터베이스(RDBMS) 내에서 프로그래밍을 수행할 수 있다. 저장 프로시저는 시스템 내부 및 외부에서 전송되는 정보의 양을 줄이고, 보안을 강화하기 위해 사용될 수 있다. 기본적인 저장 프로시저는 새로운 데이터를 삽입하거나 기존 데이터를 업데이트하는 로직을 포함하며, 더 복잡한 프로시저는 데이터 처리 및 선택과 관련된 추가 규칙 및 로직을 구현할 수 있다.[29]

저장 프로시저는 데이터베이스 내에 저장되는 실행 가능한 코드로, 일반적인 작업을 사용자 정의하거나 비즈니스 로직을 캡슐화하는 데 사용된다. 보안 또는 단순성을 위해 애플리케이션 프로그래밍 인터페이스(API)로 자주 사용되며, SQL RDBMS에서 개발자는 표준 선언적 프로그래밍 SQL 구문에 대한 절차적 프로그래밍 확장을 활용할 수 있다.[29]

인덱스는 데이터에 더 빠르게 접근하는 방법 중 하나이다. 관계의 속성 조합에 대해 생성될 수 있으며, 이러한 속성을 사용하여 필터링하는 쿼리는 인덱스를 통해 일치하는 튜플을 빠르게 찾을 수 있다. 이는 책의 색인을 사용하는 것과 유사하며, B+ 트리, R-트리, 비트맵 등 다양한 인덱싱 기법이 사용된다.[29]

인덱스는 구현 세부 사항으로 간주되지만, 쿼리 성능 향상에 큰 영향을 미친다. B-트리 인덱스는 쿼리 시간을 log(n)에 비례하게 하고, 해시 인덱스는 상수 시간 쿼리를 생성할 수 있다.[29]

관계 대수는 관계형 데이터베이스에서 쿼리 및 파생된 관계 변수를 표현하는 데 사용된다. Codd는 8개의 관계 연산자를 소개했으며, 이는 합집합, 교집합, 차집합, 데카르트 곱과 같은 집합 연산과 선택, 프로젝션, 자연 조인, 관계형 나눗셈과 같은 특수 연산을 포함한다. 이후 관계형 비교 연산자, 중첩 및 계층적 데이터 지원을 위한 확장 등 다른 연산자도 도입되었다.[29]

관계 모델은 IBM의 에드거 F. 코드가 고안했으며,[29] 데이터 모델로 가장 널리 사용된다. 사용자는 쿼리(질의)를 통해 데이터를 검색하거나 변경할 수 있다.[29]

데이터는 표와 유사한 구조인 관계(릴레이션)로 관리된다. 관계는 튜플, 속성, 도메인, 후보키, 외래키 등으로 구성된다. SQL데이터베이스 언어(질의어)를 사용하여 관계에 대해 제한, 사영, 결합 등 관계 대수 연산 또는 관계 논리 연산을 수행하여 결과를 얻는다.[29]

관계를 여러 개 가질 수 있으며, 서로 연관시킬 수 있다. 예를 들어, 식품 통신 판매 회사의 고객 관리 데이터베이스에서 고객 목록과 물품 판매 목록은 별개의 데이터 집합이지만, 고객 번호 등으로 연결하여 정보를 추출할 수 있다. 이를 표로 나타내면 다음과 같다.

식품 통신 판매 회사에서의 데이터베이스 예 (※ 데이터는 가상의 것)
고객 번호고객 이름주소1주소2전화 번호
00001아이다 타카유키도쿄도 신주쿠구가부키초 x-x-x03-xxxx-xxxx
00002이토 미카가나가와현 요코하마시나카구 야마시타초 xx045-xxx-xxxx
00003우치다 코지사이타마현 사이타마시타카사고 xx-xx048-xxx-xxxx



판매
판매일고객 번호상품1상품2상품3……
05011500002긴죠 灘 1병특선 안주
05011600001고베 와규 세트
05011600003특가 생햄홀 머스타드마리 로랑생
05011700001사츠마 흑돼지 햄



두 데이터를 고객 번호로 관련짓고, 고객 이름 데이터를 요구하면 다음과 같다.

고객명별 매출
고객 이름상품1상품2상품3……
아이다 타카유키고베 와규 세트
아이다 타카유키사츠마 흑돼지 햄
이토 미카긴죠 灘 1병특선 안주
우치다 코지특가 생햄홀 머스타드마리 로랑생



판매일을 한정하여, 고객 번호로 관련짓고, 상품과 배송지 데이터를 요구하면 다음과 같다.

상품 배송지
배송지 주소1+2고객 이름상품1상품2상품3……
도쿄도 신주쿠구 가부키초 x-x-x아이다 타카유키고베 와규 세트
사이타마현 사이타마시 타카사고 xx-xx우치다 코지특가 생햄홀 머스타드마리……



데이터를 연결할 때 기준이 되는 항목을 '''키'''라고 하며, 이 키는 고유해야 한다. 이 예에서는 고객 번호가 키이다.[29]

이 방식은 데이터베이스가 개별적으로 존재하여 각 내용 변경에 쉽게 대응하고, 쿼리를 통해 상호 연결하여 부분적인 변경에도 최신 정보를 이용할 수 있다는 장점이 있다. 고객 번호 00001의 고객이 이사하여 주소가 변경된 경우, 고객 데이터베이스만 변경하면 된다.[29]

업무를 처리하는 데이터베이스는 상품 목록 테이블이 별도로 설치되어 상품의 정가 등이 관리되는 등 여러 테이블이 연계되어 사용자에게 데이터를 제공한다. 이는 데이터 중복성을 피하고 관리를 쉽게 하기 위함이며, 키에 의해 상호 연결된다.[29]

제대로 설계된 데이터베이스에서는 복수의 쿼리가 '''정형문''' 형태로 준비되어, 사용자는 준비된 정형 쿼리를 통해 최신 데이터를 기반으로 한 표를 볼 수 있다.[29]

응용 소프트웨어 형태에서는 그래픽 사용자 인터페이스(GUI) 등의 조작 화면을 통해 쿼리문이 조합, 생성되어 데이터베이스에 전달되고, 돌아온 데이터를 처리하여 화면에 표시하거나 파일 형식으로 출력, 제공되므로, 최종 사용자는 쿼리나 관계를 거의 의식하지 않는다.[29]

4. 2. 주요 RDBMS 제품

다음은 주요 RDBMS(관계형 데이터베이스 관리 시스템) 제품들이다.

제품명개발사비고
오라클 DBMS오라클
MS SQL Server마이크로소프트
MS Access마이크로소프트
MySQL
어프로치로터스 소프트웨어
PostgreSQL
IBM DB2IBMIBM SQL/DS도 있음
파라독스(Paradox)볼랜드dBASE IV도 있음
Sybase
Informix
VMS/Rdb
알티베이스 HDB알티베이스
티베로티맥스소프트
CUBRID서치솔루션



DB-Engines에 따르면, 2024년 12월 db-engines.com 웹사이트에서 가장 인기 있는 시스템은 다음과 같다.[26]

순위제품명
1오라클 데이터베이스
2MySQL
3Microsoft SQL Server
4PostgreSQL
5Snowflake
6IBM Db2
7SQLite
8Microsoft Access
9Databricks
10MariaDB



연구 회사 가트너에 따르면, 2011년 매출 기준 상위 5대 상용 소프트웨어 관계형 데이터베이스 공급업체는 오라클 (48.8%), IBM (20.2%), 마이크로소프트 (17.0%), SAP (사이베이스 포함) (4.6%), 테라데이터 (3.7%)였다.[27]

5. RDBMS의 주요 기술

RDBMS의 주요 기술에는 관계 모델, 기본 키, 외래 키 등이 있다.


  • '''기본 키(Primary Key, PK):''' 표의 각 행을 고유하게 식별하는 열이다. 관계/테이블은 기본 키를 가지며, 이는 관계가 집합이기 때문이다.[18] 시스템 성능은 PK에 최적화되어 있다. PK 외에 자연 키를 대체 키(AK)로 정의할 수도 있다. PK와 AK는 모두 표 내에서 행을 고유하게 식별하는 기능을 갖는다.

  • '''외래 키(Foreign Key, FK):''' 다른 표의 기본 키를 참조하는 열이다. PK가 다른 표로 마이그레이션되면 FK가 된다. FK를 사용하여 표 간의 관계를 정의할 수 있다. 예를 들어, 일대일 관계(One-to-one (data model)), 일대다 관계(One-to-many (data model))를 표현할 수 있다. 다대다 관계(Many-to-many (data model))는 두 엔티티 표의 PK를 포함하는 추가 표를 생성하여 해결할 수 있다.

  • '''복합 키:''' 레코드를 고유하게 식별하는 두 개 이상의 속성으로 구성된 키이다.[19]


관계형 데이터베이스는 여러 개의 관계를 가질 수 있으며, 서로 연관시킬 수 있다. 예를 들어, 식품 통신 판매 회사의 고객 관리 데이터베이스와 판매 데이터베이스를 고객 번호로 연결하여 고객별 매출, 상품 배송지 등의 정보를 추출할 수 있다.

고객
고객 번호고객 이름주소1주소2전화 번호
00001아이다 타카유키도쿄도 신주쿠구가부키초 x-x-x03-xxxx-xxxx
00002이토 미카가나가와현 요코하마시나카구 야마시타초 xx045-xxx-xxxx
00003우치다 코지사이타마현 사이타마시타카사고 xx-xx048-xxx-xxxx



판매
판매일고객 번호상품1상품2상품3……
05011500002긴죠 灘 1병특선 안주
05011600001고베 와규 세트
05011600003특가 생햄홀 머스타드마리 로랑생
05011700001사츠마 흑돼지 햄



위의 예시처럼, 관계형 데이터베이스는 목적에 맞춰 데이터를 연결하여 원하는 표를 얻을 수 있다는 큰 특징을 가지고 있다. 데이터를 연결할 때 기준이 되는 항목을 키라고 하며, 이 키는 모든 데이터에 고유해야 한다.

관계형 데이터베이스는 각 데이터베이스 내용의 변경에 쉽게 대응할 수 있고, 쿼리를 통해 최신 정보를 이용할 수 있다는 장점이 있다. 예를 들어, 고객의 주소가 변경된 경우 고객 데이터베이스만 변경하면 된다.

실제 업무에서는 상품 목록 테이블 등 여러 개의 테이블이 연계되어 데이터를 제공하도록 설계된다. 이는 데이터의 중복성을 피하고, 데이터를 더 쉽게 관리하기 위함이다.

한 번 제대로 설계된 데이터베이스에서는, 복수의 쿼리를 미리 정형문(정형 쿼리) 형태로 준비하여 사용자가 쉽게 최신 데이터를 기반으로 한 표를 볼 수 있도록 한다.

응용 소프트웨어의 형태가 되면, 그래픽 사용자 인터페이스(GUI) 등의 조작 화면을 통해 사용자는 쿼리나 관계를 거의 의식하지 않고 데이터를 이용할 수 있다.

5. 1. 트랜잭션 (Transaction)

데이터베이스 관리 시스템(DBMS)이 효율적이고 정확하게 운용되기 위해서는 ACID 트랜잭션을 갖추고 있어야 한다.[32][33][34]

5. 2. 저장 프로시저 (Stored Procedure)

저장 프로시저(SP)는 데이터베이스 내에 저장되어 데이터베이스와 연결된 실행 가능한 코드이다. 저장 프로시저는 일반적으로 다음과 같은 작업을 수행한다.

저장 프로시저는 보안 또는 단순성을 위해 애플리케이션 프로그래밍 인터페이스(API)로 자주 사용된다. RDBMS 내의 대부분의 프로그래밍은 저장 프로시저를 이용하여 이루어진다. 때때로 프로시저들은 시스템 안팎으로 전송되는 정보의 양을 줄이는 데 큰 기여를 한다. 보안을 위해 시스템 디자인은 저장 프로시저에만 접근 권한을 주고 테이블에 직접 접근 권한을 주지 않을 수도 있다.

SQL RDBMS에서 저장 프로시저를 구현하면 개발자가 표준 선언적 프로그래밍 SQL 구문에 대한 절차적 프로그래밍 확장(종종 벤더별)을 활용할 수 있다. 기본적인 저장 프로시저는 새로운 데이터를 삽입하고 기존 데이터를 업데이트하는 데 필요한 로직을 포함한다. 더 복잡한 프로시저는 데이터를 처리하거나 선택하는 것과 관련된 추가 규칙 및 로직을 구현하기 위해 작성될 수 있다.

저장 프로시저는 관계형 데이터베이스 모델의 일부는 아니지만, 모든 상용 구현에는 저장 프로시저가 포함되어 있다.

5. 3. 정규화 (Normalization)

정규화는 관계형 모델의 필수적인 부분으로, 에드거 F. 코드가 처음 제안했다.[29] 단순하지 않은 도메인(비원자성 값)과 데이터 중복을 제거하기 위해 설계된 일련의 절차를 포함하며, 데이터 조작의 변칙과 데이터 무결성 손실을 예방한다.[29] 데이터베이스에 적용되는 가장 일반적인 정규화 형태를 정규형이라고 한다.

5. 4. 인덱스 (Index)

인덱스는 데이터베이스에서 데이터를 더 빠르게 찾을 수 있도록 도와주는 도구이다. 책에서 원하는 내용을 찾기 위해 목차를 보는 것과 비슷하다고 생각하면 된다.

관계형 데이터베이스에서는 관계(테이블)의 특정 속성(열)들을 조합하여 인덱스를 만들 수 있다. 이렇게 만들어진 인덱스를 사용하면, 해당 속성으로 데이터를 검색할 때 모든 튜플(행)을 일일이 확인하지 않고도 빠르게 원하는 튜플을 찾을 수 있다. 마치 해시 테이블 검색과 유사한 방식이다.

일반적으로 관계형 데이터베이스는 다양한 인덱싱 기법을 제공하며, 데이터의 분포, 관계의 크기, 접근 패턴 등에 따라 가장 적합한 기법을 선택하여 사용한다. 대표적인 인덱싱 기법으로는 B+ 트리, R-트리, 비트맵 등이 있다.

인덱스는 데이터베이스의 구현 세부 사항으로 간주되지만, 실제로는 데이터베이스의 다른 부분과 함께 관리된다. 특히 기본 키와 외래 키에 효율적인 인덱스를 사용하면 쿼리 성능을 크게 향상시킬 수 있다. B-트리 인덱스를 사용하면 쿼리 시간이 테이블의 행 수에 대해 로그 시간(log(n))에 비례하고, 해시 인덱스를 사용하면 (인덱스의 관련 부분이 메모리에 있는 한) 상수 시간에 쿼리를 처리할 수 있기 때문이다.

6. 관계형 데이터베이스 활용 사례 (한국)

참조

[1] 학술대회 Portable Software Tools for Managing and Referencing Taxonomies https://pubs.usgs.go[...] 2024-04-06
[2] 웹사이트 Relational Databases 101: Looking at the Whole Picture http://www.agiledata[...] 2023-03-21
[3] 서적 Database in depth: relational theory for practitioners O'Reilly 2005-05-05
[4] 서적 Funding a Revolution: Government Support for Computing Research https://books.google[...] National Academies Press 1999-01-08
[5] 서적 Fundamentals of Relational Database Management Systems Springer 2008-02-13
[6] 저널 Oracle Timeline http://www.oracle.co[...] Oracle 2013-05-16
[7] 웹사이트 New Database Software Program Moves Macintosh Into The Big Leagues https://www.chicagot[...] 2016-03-17
[8] 저널 A set theoretic data structure and retrieval language https://dl.acm.org/d[...] Association for Computing Machinery 2024-01-04
[9] 서적 SIGFIDET '74: Proceedings of the 1974 ACM SIGFIDET (Now SIGMOD) Workshop on Data Description, Access and Control: Data Models: Data-Structure-Set versus Relational https://dl.acm.org/d[...] Association for Computing Machinery 2024-01-04
[10] 서적 The Peterlee IS/1 System https://scholar.goog[...] IBM United Kingdom Scientific Centre 2024-01-04
[11] 저널 The Peterlee Relational Test Vehicle - A System Overview
[12] 저널 SRQL: Sorted Relational Query Language http://pages.cs.wisc[...]
[13] 웹사이트 A Relational Database Overview https://docs.oracle.[...]
[14] 서적 A universal relation model for a nested database http://dx.doi.org/10[...] Springer Berlin Heidelberg 2020-11-01
[15] 웹사이트 Gray to be Honored With A. M. Turing Award This Spring http://www.microsoft[...] Microsoft PressPass 2009-01-16
[16] 학술대회 The Transaction Concept: Virtues and Limitations http://research.micr[...] Tandem Computers 2006-11-09
[17] 서적 Distributed Transaction Processing: Concepts and Techniques Morgan Kaufmann
[18] 저널 A Relational Model of Data for Large Shared Data Banks
[19] 서적 Database systems: a practical approach to design, implementation, and management Pearson
[20] 서적 Database Systems – A Practical Approach to Design Implementation and Management Pearson 2014-00-00
[21] 서적 Concepts of Database Management Course Technology 2014-09-08
[22] 서적 Dateso 10; Database Trends and Directions: Current Challenges and Opportunities https://citeseerx.is[...] MATFYZPRESS 2010-04-21
[23] 웹사이트 NoSQL databases eat into the relational database market https://www.techrepu[...] 2018-03-14
[24] 저널 Distributed database for SAA 1988-00-00
[25] 서적 Distributed Relational Database Architecture Reference IBM Corp. SC26-4651-0 1990-00-00
[26] 웹사이트 DB-Engines Ranking of Relational DBMS https://db-engines.c[...] 2024-12-01
[27] 뉴스 Oracle the clear leader in $24 billion RDBMS market http://itknowledgeex[...] 2013-03-01
[28] 문서 关系数据库に含まれないデータベースは、[[NoSQL]] などを参照。
[29] 논문 A Relational Model of Data for Large Shared Data Banks http://www.seas.upen[...] IBM Research Laboratory, California
[30] 저널 A Relational Model of Data for Large Shared Data Banks
[31] 웹인용 A Relational Database Overview https://docs.oracle.[...]
[32] 웹인용 Gray to be Honored With A. M. Turing Award This Spring http://www.microsoft[...] Microsoft PressPass 1998-11-23
[33] 학술대회 The Transaction Concept: Virtues and Limitations http://research.micr[...] Tandem Computers 1981-09-00
[34] 서적 Distributed Transaction Processing: Concepts and Techniques Morgan Kaufmann

관련 사건 타임라인

( 최근 20개의 뉴스만 표기 됩니다. )



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com